﻿var x1, y1, x2, y2, w, h, larguraImg, alturaImg;
var historicoAcoes;
var imgEditando = "http://www.brunobarreto.net/imagr/img/exemplos/agua.jpg";
var editando = 1;

$(document).ready(function () {
	//historicoAcoes = document.getElementById("historicoAcoes");
	historicoAcoes = "";
	$("#overlay").show();

	$("#imagem").image(imgEditando, function(){
		$("#overlay").hide();
	});

	setInterval(bloqueiaDuranteEdicao, 100);
	
	try { if (document.all) { document.onselectstart = function () {return false;}; };} catch (e) {}
	
	SimpleContextMenu.setup({'preventDefault':true, 'preventForms':false});
	//SimpleContextMenu.attach('container1', 'CM1');
	
	$("#imagem").shortkeys({
		'Space+C': function () { cancelaTodos(); iniciaRecorte(); },
		'Space+R': function () { cancelaTodos(); iniciaRedimensionar(); },
		'Space+G': function () { cancelaTodos(); iniciaGirar(); },
		'Space+I': function () { cancelaTodos(); iniciaInverter(); },
		'Space+O': function () { cancelaTodos(); iniciaContraste(); },
		'Space+M': function () { cancelaTodos(); iniciaWatermark(); },
		'Space+T': function () { cancelaTodos(); iniciaTexto(); },
		'Space+N': function () { cancelaTodos(); iniciaNegativo(); },
		'Space+P': function () { cancelaTodos(); iniciaGrayscale(); },
		'Space+Z': function () { cancelaTodos(); cancelarAcao(1); }
	});
	
});

function escapeHTML (str) {
	var div = document.createElement('div');
	var text = document.createTextNode(str);
	div.appendChild(text);
	return div.innerHTML;
}

var SimpleContextMenu = {

	_menus : new Array,
	_attachedElement : null,
	_menuElement : null,
	_preventDefault : true,
	_preventForms : true,

	setup : function (conf) {
		if ( document.all && document.getElementById && !window.opera ) {
			SimpleContextMenu.IE = true;
		}
		if ( !document.all && document.getElementById && !window.opera ) {
			SimpleContextMenu.FF = true;
		}
		if ( document.all && document.getElementById && window.opera ) {
			SimpleContextMenu.OP = true;
		}
		if ( SimpleContextMenu.IE || SimpleContextMenu.FF ) {
			document.oncontextmenu = SimpleContextMenu._show;
			document.onclick = SimpleContextMenu._hide;
			if (conf && typeof(conf.preventDefault) != "undefined") {
				SimpleContextMenu._preventDefault = conf.preventDefault;
			}
			if (conf && typeof(conf.preventForms) != "undefined") {
				SimpleContextMenu._preventForms = conf.preventForms;
			}
		}
	},
	attach : function (classNames, menuId) {
		if (typeof(classNames) == "string") {
			SimpleContextMenu._menus[classNames] = menuId;
		}
		if (typeof(classNames) == "object") {
			for (x = 0; x < classNames.length; x++) {
				SimpleContextMenu._menus[classNames[x]] = menuId;
			}
		}
	},
	_getMenuElementId : function (e) {
		if (SimpleContextMenu.IE) {
			SimpleContextMenu._attachedElement = event.srcElement;
		} else {
			SimpleContextMenu._attachedElement = e.target;
		}
		while(SimpleContextMenu._attachedElement != null) {
			var className = SimpleContextMenu._attachedElement.className;
			if (typeof(className) != "undefined") {
				className = className.replace(/^\s+/g, "").replace(/\s+$/g, "")
				var classArray = className.split(/[ ]+/g);
				for (i = 0; i < classArray.length; i++) {
					if (SimpleContextMenu._menus[classArray[i]]) {
						return SimpleContextMenu._menus[classArray[i]];
					}
				}
			}
			if (SimpleContextMenu.IE) {
				SimpleContextMenu._attachedElement = SimpleContextMenu._attachedElement.parentElement;
			} else {
				SimpleContextMenu._attachedElement = SimpleContextMenu._attachedElement.parentNode;
			}
		}
		return null;
	},
	_getReturnValue : function (e) {

		var returnValue = true;
		var evt = SimpleContextMenu.IE ? window.event : e;

		if (evt.button != 1) {
			if (evt.target) {
				var el = evt.target;
			} else if (evt.srcElement) {
				var el = evt.srcElement;
			}

			var tname = el.tagName.toLowerCase();

			if ((tname == "input" || tname == "textarea")) {
				if (!SimpleContextMenu._preventForms) {
					returnValue = true;
				} else {
					returnValue = false;
				}
			} else {
				if (!SimpleContextMenu._preventDefault) {
					returnValue = true;
				} else {
					returnValue = false;
				}
			}
		}
		return returnValue;
	},
	_show : function (e) {
		SimpleContextMenu._hide();
		var menuElementId = SimpleContextMenu._getMenuElementId(e);

		if (menuElementId) {
			var m = SimpleContextMenu._getMousePosition(e);
			var s = SimpleContextMenu._getScrollPosition(e);

			SimpleContextMenu._menuElement = document.getElementById(menuElementId);
			SimpleContextMenu._menuElement.style.left = m.x + s.x + 'px';
			SimpleContextMenu._menuElement.style.top = m.y + s.y + 'px';
			SimpleContextMenu._menuElement.style.display = 'block';
			return false;
		}
		return SimpleContextMenu._getReturnValue(e);
	},
	_hide : function () {
		if (SimpleContextMenu._menuElement) {
			SimpleContextMenu._menuElement.style.display = 'none';
		}
	},
	_getMousePosition : function (e) {
		e = e ? e : window.event;
		var position = {
			'x' : e.clientX,
			'y' : e.clientY
		}
		return position;
	},

	_getScrollPosition : function () {
		var x = 0;
		var y = 0;
		if( typeof( window.pageYOffset ) == 'number' ) {
			x = window.pageXOffset;
			y = window.pageYOffset;
		} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
			x = document.documentElement.scrollLeft;
			y = document.documentElement.scrollTop;
		} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
			x = document.body.scrollLeft;
			y = document.body.scrollTop;
		}
		var position = {
			'x' : x,
			'y' : y
		}
		return position;
	}
}

function toHex(N) {
	if (N == null) {
		return "00"
	} else {
		N = parseInt(N);
		if (N==0 || isNaN(N)) {
			return "00";
		} else {
			N = Math.max(0,N);
			N = Math.min(N,255);
			N = Math.round(N);
			return "0123456789ABCDEF".charAt((N-N%16)/16) + "0123456789ABCDEF".charAt(N%16);
		}
	}
}


$.fn.image = function(src, f){ 
	return this.each(function(){ 
		var i = new Image(); 
		this.onload = f; 
		i.src = src; 
		this.src=i.src;
		this.style.width="";
		this.style.height="";
		editando = 0;
	}); 
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function exibeSobre() {
	$("#overlay").show();
	exibeAviso("<p style=\"text-align:center\"><img src=\"img/logo_small.jpg\" alt=\"imagr\" /></p><p>imagr é um programa opensource desenvolvido em php.</p><br/><p>Para saber mais, <a href=\"http://imagr.googlecode.com\" onclick=\"javascript:window.open(this.href);return false;\">clique aqui</a>.</p><br/>")
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function bloqueiaDuranteEdicao() {

	try {	
		var toolboxOverlay = document.getElementById("toolboxOverlay");
		var toolbox = document.getElementById("toolbox");
		
		document.getElementById("toolboxOverlay").style.height = (document.getElementById("toolbox").offsetHeight-20) + "px";
	
		if (editando==1) {
			toolboxOverlay.style.display = "block";
		} else {
			toolboxOverlay.style.display = "none";
			larguraImg = document.getElementById("imagem").offsetWidth;
			alturaImg = document.getElementById("imagem").offsetHeight;
		}

	} catch (e) {}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function bloqueioToolbar() {
	exibeAviso("<p>Desculpe-nos, mas só é possível usar uma ferramenta por vez...</p>");
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function exibeAviso(msg) {
		$("#overlay").show();
		document.getElementById("barraAvisos").innerHTML = msg + "<p><a href=\"#\" onclick=\"javascript:$('#barraAvisos').fadeOut('slow');$('#overlay').hide();\">fechar</a></p>";
		$("#barraAvisos").fadeIn("slow");
}

function exibeErro(msg) {
	$("#overlay").show();
	document.getElementById("barraErros").innerHTML = "<p><span style=\"color: red; font-weight: bold;\">Ooops... alguma coisa está errada...</span><br/><br/>" +  msg + "</p>" + "<p><a href=\"#\" onclick=\"javascript:$('#barraErros').fadeOut('slow');$('#overlay').hide();\">fechar</a></p>";
	$("#barraErros").fadeIn("slow");
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function executaAcoes() {
	if (historicoAcoes!="") {
		$("#avisos").fadeIn("slow");
		urlImg = "processa.php?imagem=" + imgEditando + "&json={\"edicao\":[" + historicoAcoes + "]}";
		$("#imagem").imgAreaSelect({ hide: true, disable: true });
		$("#imagem").image(urlImg,function(){
		$("#avisos").fadeOut("slow");
		});
	} else {
		exibeAviso("<p>Ooops... Não há nada pra se fazer na imagem...</p>");
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function desfazer() {

	var json = "{edicao:[" + historicoAcoes + "]}";
	
	json = eval("(" + json + ")");
	
	window.alert(json.edicao.count);

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function selectChange(img, selection) {
	try {
		x1 = selection.x1;
		y1 = selection.y1;
		x2 = selection.x2;
		y2 = selection.y2;
		w  = selection.width;
		h  = selection.height;
	} catch (e) {
		window.alert(e.message);
	}
}

function iniciaRecorte() {
	try {
		editando = 1;
		$("#imagem").imgAreaSelect({ disable: false, show: true, x1: 0, y1: 0, x2: 100, y2: 100, onSelectChange: selectChange });
		mostraSubMenu("Recorte");
	} catch(e) {
		exibeErro(e.message);
	}
}

function finalizaRecorte() {
	try {
		if (historicoAcoes!="") {
			historicoAcoes = historicoAcoes + ", \n" + "{\"acao\":\"recorte\", \"parametros\": {\"x\": " + x1 + ", \"y\": " + y1 + ", \"w\": " + w + ", \"h\": " + h + "}}";
		} else {
			historicoAcoes = "{\"acao\":\"recorte\", \"parametros\": {\"x\": " + x1 + ", \"y\": " + y1 + ", \"w\": " + w + ", \"h\": " + h + "}}";
		}
		executaAcoes();
		escondeSubMenu();
	} catch(e) {
		exibeErro(e.message);
		cancelaRecorte();
	}
}

function cancelaRecorte() {
	try {
		editando = 0;
		$("#imagem").imgAreaSelect({ hide: true, disable: true });
		escondeSubMenu();
	} catch(e) {
		exibeErro(e.message);
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function iniciaGirar() {
	try {
		mostraSubMenu("Girar");
	} catch(e) {
		exibeErro(e.message);
	}
}

function finalizaGirar() {
	try {
		angulo = document.getElementById("girarGraus").value;
		
		if (isNaN(angulo)) {
			window.alert("O ângulo deve ser um número inteiro");
		} else {		
			if (historicoAcoes!="") {
				historicoAcoes = historicoAcoes + ", \n" + "{acao:\"girar\", parametros: {a: " + angulo + "}}";
			} else {
				historicoAcoes = "{\"acao\":\"girar\", \"parametros\": {\"a\": " + angulo + "}}";
			}
			executaAcoes();
			
			escondeSubMenu();
		}
	} catch(e) {
		exibeErro(e.message);
		cancelaGirar();
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function iniciaRedimensionar() {
	try {
		editando = 1;
		mostraSubMenu("Redimensionar");
		$("#imagem").resizable("enable");
		$("#imagem").resizable({ minHeight: 10, minWidth: 10 });
	} catch(e) {
		exibeErro(e.message);
	}
}

function finalizaRedimensionar() {
	try {
		w = document.getElementById("imagem").style.width.replace("px","");
		h = document.getElementById("imagem").style.height.replace("px","");
		if (historicoAcoes!="") {
			historicoAcoes = historicoAcoes + ", \n" + "{\"acao\":\"redimensionar\", \"parametros\": {\"w\": " + w + ", \"h\": " + h + "}}";
		} else {
			historicoAcoes = "{\"acao\":\"redimensionar\", \"parametros\": {\"w\": " + w + ", \"h\": " + h + "}}";
		}
		executaAcoes();
		$("#imagem").resizable("destroy");
		//$("#barraRedimensionar").fadeOut("slow");
		escondeSubMenu();
	} catch(e) {
		exibeErro(e.message);
		cancelaRedimensionar();
	}
}

function cancelaRedimensionar() {
	try {
		editando = 0;
		$("#imagem").resizable("destroy");
		document.getElementById("imagem").style.width="";
		document.getElementById("imagem").style.height="";
		//$("#barraRedimensionar").fadeOut("slow");
		escondeSubMenu();
	} catch(e) {
		exibeErro(e.message);
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////


function iniciaReiniciar() {
	try {
		$("#barraReiniciar").fadeIn("slow");
		document.getElementById("overlay").style.display="block";
	} catch(e) {
		exibeErro(e.message);
	}
}

function finalizaReiniciar() {
	try {
		$("#avisos").fadeIn("slow");
		historicoAcoes = "";
		$("#imagem").image(imgEditando,function(){
			$("#avisos").fadeOut("slow");
		});
		$("#barraReiniciar").fadeOut("slow");
		document.getElementById("overlay").style.display="none";
	} catch(e) {
		exibeErro(e.message);
		cancelaReiniciar();
	}
}

function cancelaReiniciar() {
	try {
		$("#barraReiniciar").fadeOut("slow");
		document.getElementById("overlay").style.display="none";
	} catch(e) {
		exibeErro(e.message);
	}
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////


function iniciaCarregarFoto() {
	try {
		$("#barraCarregarFoto").fadeIn("slow");
		document.getElementById("overlay").style.display="block";
	} catch(e) {
		exibeErro(e.message);
	}
}


function finalizaCarregarFoto() {
	try {
	
		novaImg = document.getElementById("urlFoto").value
		
		if (novaImg!="") {
			imgEditando = novaImg;
	
			$("#avisos").fadeIn("slow");
			historicoAcoes = "";
			$("#imagem").image(imgEditando,function(){
				$("#avisos").fadeOut("slow");
			});
			$("#barraCarregarFoto").fadeOut("slow");
			document.getElementById("overlay").style.display="none";
		} else {
			exibeErro("Você não digitou a url da imagem =(");
		}
	} catch(e) {
		exibeErro(e.message);
		cancelaCarregarFoto();
	}
}

function cancelaCarregarFoto() {
	try {
		$("#barraCarregarFoto").fadeOut("slow");
		document.getElementById("overlay").style.display="none";
		//historicoAcoes = "";
	} catch(e) {
		exibeErro(e.message);
	}
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////

function iniciaInverter() {
	try {
		$("#barraInverter").fadeIn("slow");
		mostraSubMenu("Inverter");
		document.getElementById("overlay").style.display="block";
	} catch(e) {
		exibeErro(e.message);
	}
}

function finalizaInverter(direcao) {
	try {
		if (historicoAcoes!="") {
			historicoAcoes = historicoAcoes + ", \n" + "{\"acao\":\"flip\", \"parametros\": {\"direcao\": \"" + direcao + "\"}}";
		} else {
			historicoAcoes = "{\"acao\":\"flip\", \"parametros\": {\"direcao\": \"" + direcao + "\"}}";
		}
		executaAcoes();
		$("#barraInverter").fadeOut("slow");
		document.getElementById("overlay").style.display="none";
	} catch(e) {
		exibeErro(e.message);
		cancelaInverter();
	}
}

function cancelaInverter() {
	try {
		$("#barraInverter").fadeOut("slow");
		document.getElementById("overlay").style.display="none";
	} catch(e) {
		exibeErro(e.message);
	}
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////

function iniciaContraste() {
	try {
		//$("#barraContraste").fadeIn("slow");
		mostraSubMenu("Contraste");
		document.getElementById("overlay").style.display="block";
	} catch(e) {
		exibeErro(e.message);
	}
}

function finalizaContraste() {
	try {
		quantidade = document.getElementById("qtdeContraste").value;
		if (historicoAcoes!="") {
			historicoAcoes = historicoAcoes + ", \n" + "{\"acao\":\"contraste\", \"parametros\": {\"quantidade\": \"" + quantidade + "\"}}";
		} else {
			historicoAcoes = "{\"acao\":\"contraste\", \"parametros\": {\"quantidade\": \"" + quantidade + "\"}}";
		}
		executaAcoes();
		$("#barraContraste").fadeOut("slow");
		document.getElementById("overlay").style.display="none";
	} catch(e) {
		exibeErro(e.message);
		cancelaContraste();
	}
}

function cancelaContraste() {
	try {
		$("#barraContraste").fadeOut("slow");
		document.getElementById("overlay").style.display="none";
	} catch(e) {
		exibeErro(e.message);
	}
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////

function iniciaWatermark() {
	try {
		mostraSubMenu("MarcaDagua");
		document.getElementById("overlay").style.display="block";
	} catch(e) {
		exibeErro(e.message);
	}
}

function finalizaWatermark() {
	try {
	
		imgW = document.getElementById("imagem").offsetWidth;
		imgH = document.getElementById("imagem").offsetHeight;
	
		urlWatermark = document.getElementById("urlWatermark").value;
		wmPosX = document.getElementById("wmPosX").value;
		wmPosY = document.getElementById("wmPosY").value;
		wmW = document.getElementById("wmW").value;
		wmH = document.getElementById("wmH").value;
		wmTransp = document.getElementById("wmTransp").value;
			
		if (wmPosX == "centro") {
			wmPosX = imgW - (imgW/2) - (wmW/2);
		} else if (wmPosX == "direita") {
			wmPosX = imgW - wmW - 10;
		} else {
			wmPosX = 10;
		}
		
		if (wmPosY == "centro") {
			wmPosY = imgH - (imgH/2) - (wmH/2);
		} else if (wmPosY == "rodape") {
			wmPosY = imgH - wmH - 10;
		} else {
			wmPosY = 10;
		}
		
		if (urlWatermark=="") {
			exibeErro("Você não digitou a URL da imagem");
		} else if (isNaN(wmTransp) || wmTransp=="") {
			exibeErro("O nível de opacidade deve ser um número inteiro entre 0 e 100.");
		} else if (wmTransp<0 || wmTransp>100) {
			exibeErro("O nível de opacidade deve ser um número inteiro entre 0 e 100.");
		} else {
			$("#barraWatermark").fadeOut("slow");
			if (historicoAcoes!="") {
				historicoAcoes = historicoAcoes + ", \n" + "{\"acao\":\"colagem\", \"parametros\": {\"url\": \"" + urlWatermark + "\", \"w\": " + wmW + ", \"h\": " + wmH + ", \"t\": " + wmPosY + ", \"l\": " + wmPosX + ", \"a\": " + wmTransp + "}}";
			} else {
				historicoAcoes = "{\"acao\":\"colagem\", \"parametros\": {\"url\": \"" + urlWatermark + "\", \"w\": " + wmW + ", \"h\": " + wmH + ", \"t\": " + wmPosY + ", \"l\": " + wmPosX + ", \"a\": " + wmTransp + "}}";
			}
			executaAcoes();
			document.getElementById("overlay").style.display="none";
		}
	} catch(e) {
		exibeErro(e.message);
	}
}

function cancelaWatermark() {
	try {
		$("#barraWatermark").fadeOut("slow");
		document.getElementById("overlay").style.display="none";
	} catch(e) {
		exibeErro(e.message);
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function iniciaTexto() {
	try {
		$("#areaTXT").fadeIn("fast", function () {
			//$("#barraTexto").fadeIn("fast");
			mostraSubMenu("Texto");
		});
		
		$("#txtBox").Draggable({
			zIndex: 1000,
			opacity: 0.7,
			containment: "parent"
		});
		
		document.getElementById("txtBox").innerHTML = escapeHTML(document.getElementById("texto").value);
		document.getElementById("areaTXT").style.top = document.getElementById("imagem").offsetTop + "px";
		document.getElementById("areaTXT").style.left = document.getElementById("imagem").offsetLeft + "px";
		document.getElementById("areaTXT").style.width = document.getElementById("imagem").offsetWidth + "px";
		document.getElementById("areaTXT").style.height = document.getElementById("imagem").offsetHeight + "px";
		document.getElementById("txtBox").style.fontSize = document.getElementById("txtSize").value + "pt";
		cores();
		$("#areaTXT").fadeIn("slow");
	} catch(e) {
		exibeErro(e.message);
	}
}

function finalizaTexto() {
	try {
		$("#areaTXT").fadeOut("slow", function () {
			escondeSubMenu();
		});
		$("#txtBox").Draggable("destroy");
		t = document.getElementById("txtBox").offsetTop+18;
		l = document.getElementById("txtBox").offsetLeft-2;
		w = document.getElementById("txtBox").offsetWidth;
		h = document.getElementById("txtBox").offsetHeight;
		r = document.getElementById("corR").value;
		g = document.getElementById("corG").value;
		b = document.getElementById("corB").value;
		tamanho = document.getElementById("txtBox").style.fontSize.replace("pt","");
		texto = document.getElementById("txtBox").innerHTML;
		if (historicoAcoes!="") {
			historicoAcoes = historicoAcoes + ", \n" + "{\"acao\":\"texto\", \"parametros\": {\"texto\": \"" + texto + "\", \"w\": " + w + ", \"h\": " + h + ", \"t\": " + t + ", \"l\": " + l + ", \"r\": " + r + ", \"g\": " + g + ", \"b\": " + b + ", \"tamanho\": " + tamanho +"}}";
		} else {
			historicoAcoes = "{\"acao\":\"texto\", \"parametros\": {\"texto\": \"" + texto + "\", \"w\": " + w + ", \"h\": " + h + ", \"t\": " + t + ", \"l\": " + l + ", \"r\": " + r + ", \"g\": " + g + ", \"b\": " + b + ", \"tamanho\": " + tamanho +"}}";
		}
		executaAcoes();

	} catch(e) {
		exibeErro(e.message);
	}
}

function cancelaTexto() {
	try {
		$("#areaTXT").fadeOut("slow", function () {
			//$("#barraTexto").fadeOut("slow");
			escondeSubMenu();
		});
	} catch(e) {
		exibeErro(e.message);
	}
}

function atualizaTexto(txt) {
	document.getElementById("txtBox").innerHTML = escapeHTML(txt);
}

function txtTamanho(tamanho) {
	document.getElementById("txtBox").style.fontSize = tamanho + "pt";
}


function cores() {
	cor = "#" + toHex(document.getElementById("corR").value)+toHex(document.getElementById("corG").value)+toHex(document.getElementById("corB").value);
	document.getElementById("txtBox").style.color = cor;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function iniciaNegativo() {
	try {
		if (historicoAcoes!="") {
			historicoAcoes = historicoAcoes + ", \n" + "{\"acao\":\"negativo\"}";
		} else {
			historicoAcoes = "{\"acao\":\"negativo\"}";
		}
		executaAcoes();
	} catch(e) {
		exibeErro(e.message);
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

function iniciaGrayscale() {
	try {
		if (historicoAcoes!="") {
			historicoAcoes = historicoAcoes + ", \n" + "{\"acao\":\"grayscale\"}";
		} else {
			historicoAcoes = "{\"acao\":\"grayscale\"}";
		}
		executaAcoes();
	} catch(e) {
		exibeErro(e.message);
	}
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////

function iniciaEnviarEmail() {
	try {
		$("#barraEnviarEmail").fadeIn("slow");
		document.getElementById("overlay").style.display="block";
	} catch(e) {
		exibeErro(e.message);
	}
}

function finalizaEnviarEmail() {
	try {
		email = document.getElementById("enderecoEmail").value;
		if (email!="") {
			$("#barraEnviarEmail").fadeOut("slow");
			document.getElementById("overlay").style.display="none";
		} else {
			exibeErro("Você não digitou o e-mail");
		}
	} catch(e) {
		exibeErro(e.message);
		cancelaEnviarEmail();
	}
}

function cancelaEnviarEmail() {
	try {
		$("#barraEnviarEmail").fadeOut("slow");
		document.getElementById("overlay").style.display="none";
	} catch(e) {
		exibeErro(e.message);
	}
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////

function iniciaSalvar() {
	try {
		$("#barraSalvar").fadeIn("slow");
		if (historicoAcoes!="") {
			urlImg = "processa.php?imagem=" + imgEditando + "&json={\"edicao\":[" + historicoAcoes + "]}";
		} else {
			urlImg = imgEditando;
		}
		document.getElementById("barraSalvar").innerHTML = "<p>Para salvar esta imagem no seu computador, <a href=\"" + encodeURI(urlImg) + "\" onclick=\"javascript:window.open(this.href);cancelaSalvar();return false;\">clique aqui</a></p><p><a href=\"#\" onclick=\"javascript:cancelaSalvar();\">Cancelar</a>";
		document.getElementById("overlay").style.display="block";
	} catch(e) {
		exibeErro(e.message);
	}
}

function cancelaSalvar() {
	try {
		$("#barraSalvar").fadeOut("slow");
		document.getElementById("overlay").style.display="none";
	} catch(e) {
		exibeErro(e.message);
	}
}


/////////////////////


function iniciaColorir() {
	try {
		$("#barraColorir").fadeIn("slow");
		document.getElementById("overlay").style.display="block";
		$("#barraColorir .cp").ColorPicker({
			flat: true,
			onChange: function (hsb, hex, rgb) {
				$('#barraColorir .corR').val(rgb["r"]);
				$('#barraColorir .corG').val(rgb["g"]);
				$('#barraColorir .corB').val(rgb["b"]);
				
			}
		})
	} catch(e) {
		exibeErro(e.message);
	}
}

function finalizaColorir() {
	try {
		corR = $(".corR").val();
		corG = $(".corG").val();
		corB = $(".corB").val();
		
		if (corR!="" || corG!="" || corB!="") {
			$("#barraColorir").fadeOut("slow");
			escondeSubMenu();
			document.getElementById("overlay").style.display="none";
			if (historicoAcoes!="") {
				historicoAcoes = historicoAcoes + ", \n" + "{\"acao\":\"colorir\", \"parametros\": {\"r\": " + corR + ",\"g\":" + corG + ",\"b\": " + corB + "}}";
			} else {
				historicoAcoes = "{\"acao\":\"colorir\", \"parametros\": {\"r\": " + corR + ",\"g\":" + corG + ",\"b\": " + corB + "}}";
			}
			executaAcoes();
		} else {
			exibeErro("Verifique a cor selecionada");
		}
	} catch(e) {
		exibeErro(e.message);
		cancelaColorir();
	}
}

function cancelaColorir() {
	try {
		$("#barraColorir").fadeOut("slow");
		escondeSubMenu();
		document.getElementById("overlay").style.display="none";
	} catch(e) {
		exibeErro(e.message);
	}
}



/////////////////////

function cancelarAcao(dAcoes) {
	objAcoes = "";
	objAcoes = eval("acoes: {[" + historicoAcoes + "]}");
	acaoDelete = 0;
	for (nacao=0; nacao<=objAcoes.length; nacao++) {
		if (acaoDelete<dAcoes) {
			delete objAcoes[objAcoes.length-nacao-1];
		}
		acaoDelete++;
	}
	historicoAcoes = JSON.stringify(objAcoes, function (key, value) {
		return value;
	});
	
	historicoAcoes = historicoAcoes.substr(1, historicoAcoes.length-2);
	
	//window.alert(historicoAcoes);
	executaAcoes();
}


////////////////////////
function escondeSubMenu() {
$("#div_controles_submenu div").hide();
$("#div_controles_submenu").css("visibility", "hidden");
}


////////////////////////
function cancelaTodos() {
	cancelaRedimensionar();
	cancelaWatermark();
	cancelaRecorte()
	cancelaTexto();
	cancelaSalvar();
	cancelaColorir();
	cancelaCarregarFoto();

}

////////////////////////

function mostraSubMenu(ferramenta){
		var controles = $("#div_controles");
		var controles_submenu = $("#div_controles_submenu");
	    
		$("#div_controles_submenu div").hide();
                controles_submenu.css("visibility", "hidden");
                //var ferramenta = item;
                var position_parent = controles.position();
		//meio inutil isso aqui.... arrumar
                var position_imagem = controles.position();
                var largura_submenu = controles_submenu.width();
                var largura_menu = controles.width();
                var offset = 15;
                
                if(position_parent.left > largura_submenu)
                {
                    controles_submenu.css("left", (position_parent.left - largura_submenu - offset) );
                }
                else
                {
                    controles_submenu.css("left", (position_parent.left + largura_menu + offset) );
                }
                
		if (ferramenta)
		{
		    controles_submenu.css("top", (position_parent.top + position_imagem.top) );
		    controles_submenu.css("visibility", "visible");
		    $("#div_controles_submenu #" + ferramenta).css("visibility", "visible");
		    $("#div_controles_submenu #" + ferramenta).show();
		}

    
}